package com.genius.enums;

/**
 * 响应结果枚举，用于提供给JSONResult返回给前端的
 */
public enum ResponseType {

    // 处理请求正常状态码
    SUCCESS(200,"操作成功"),

    // 无法处理请求状态码
    BAD_REQUEST(400,"参数列表错误"),
    UNAUTHORIZED(401,"您的权限不足，无法继续操作"),
    UN_LOGIN(402,"请登录后再继续操作"),
    FORBIDDEN(403,"访问受限，授权过期"),
    NOT_FOUND(404,"资源服务未找到"),
    INNER_FORBIDDEN(405,"内部访问受限，不允许访问"),
    CHILD_NODE_EXIST_ERROR(406,"存在子节点"),
    ASSOCIATION_EXIST_ERROR(407,"存在关联关系"),

    // 处理请求出错状态码
    FAILED(500,"操作失败"),
    // 注册登陆错误状态码
    USER_PARAMS_ERROR(501,"用户名或密码错误"),
    DATA_DISABLE(502,"数据已停用"),

    SERVICE_UNAVAILABLE(503,"服务不可用"),
    USER_NOT_EXIST_ERROR(504,"用户不存在"),
    VERIFICATION_CODE_SEND_ERROR(505,"验证码已发送，请勿重复操作"),
    VERIFICATION_CODE_INVALID_ERROR(506,"验证码失效，请刷新验证码"),
    VERIFICATION_CODE_NOT_MATCH_ERROR(507,"验证码不匹配"),
    USER_REGISTER_ERROR(508,"用户注册失败，请重试"),

    // 用户管理错误状态码
    USER_EXIST_ERROR(510,"用户已存在"),
    DELETE_CURRENT_USER_ERROR(511,"不能删除当前账户"),

    // 机构管理错误状态码
    DEPT_NOT_EXIST_ERROR(520,"机构不存在"),

    // 菜单管理错误状态码
    MENU_EXIST_ERROR(530,"菜单已存在"),
    MENU_NOT_EXIST_ERROR(531,"菜单不存在"),

    // 角色管理错误状态码
    ROLE_NAME_EXIST_ERROR(540,"角色名称已存在"),

    // 字典管理错误状态码
    DICT_TYPE_EXIST_ERROR(550,"字典类型已存在"),
    // 消息管理错误状态码
    DELETE_NOTICE_ERROR(560,"只能删除待阅的消息"),
    REVOKE_NOTICE_ERROR(561,"只能撤回待阅的消息"),
    READ_NOTICE_ERROR(562,"只能已阅待阅的消息"),
    // 日志监控错误状态码
    SAVE_OPERATION_LOG_ERROR(571,"操作日志记录错误"),
    // 文件管理错误状态码
    FILE_UPLOAD_FAILED(580,"文件上传失败"),
    FILE_DOWNLOAD_FAILED(581,"文件下载失败"),
    IMAGE_FORMATTER_FAILED(582,"图片上传只能是JPG格式"),
    IMAGE_MAX_SIZE_2MB_ERROR(583,"图片上传大小不能超过2MB"),
    FILE_MAX_SIZE_100MB_ERROR(584,"文件上传大小不能超过100MB"),
    BUILD_EMAIL_CONTENT_ERROR(585,"创建邮件上下文失败");

    // 响应业务状态
    private final Integer code;
    // 响应消息
    private final String msg;

    ResponseType(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer code() {
        return code;
    }
    public String msg() {
        return msg;
    }
}
